package com.zuipin.service;

import java.util.List;

import com.zuipin.entity.BaseDictionaryData;
import com.zuipin.entity.product.ProductExtInfo;
import com.zuipin.util.Pagination;
import com.zuipin.vo.BaseDictionaryDataVo;

import net.sf.json.JSONObject;

/**
 * 字典数据值service
 * 
 * @ClassName: IBaseDictionaryDataService
 * @Description: TODO
 * @author robot
 * @date 2017年3月27日 上午10:48:01
 */
public interface IBaseDictionaryDataService {
	/**
	 * 查询字典数据值
	 * @Title: findById
	 * @author robot
	 * @date 2017年04月247日 16:56:13
	 * @param id,
	 * @return
	 * @return BaseDictionaryData
	 */
	public BaseDictionaryData findById( Long id);
	
	/**
	 * 插入字典数据值
	 * 
	 * @Title: insert
	 * @author robot
	 * @date 2017年04月247日 16:56:13
	 * @param baseDictionaryData
	 * @return void
	 */
	public void insert(BaseDictionaryData baseDictionaryData);
	
	/**
	 * 更新字典数据值
	 * 
	 * @Title: update
	 * @author robot
	 * @date 2017年04月247日 16:56:13
	 * @param baseDictionaryData
	 * @return void
	 */
	public void update(BaseDictionaryData baseDictionaryData);
	
	/**
	 * 删除字典数据值
	 * @Title: delete
	 * @author robot
	 * @date 2017年04月247日 16:56:13
	 * @param id,
	 * @return void
	 */
	public void delete( Long id);
	
	/**
	 * 搜索字典数据值
	  *  @Title: seachBaseDictionaryData
	  * @author robot
	  * @date 2017年04月247日 16:56:13
	  * @param baseDictionaryData
	  * @param page
	  * @return
	  * @return List<BaseDictionaryData>
	 */
	public List<BaseDictionaryDataVo> seachBaseDictionaryData(BaseDictionaryData baseDictionaryData, Pagination page);

	
	/**
	 * 分页查询标签信息列表
	 * @param baseDictionaryData
	 * @param page
	 * @author wangcongyi
	 * @return List<BaseDictionaryData>
	 */
	public List<BaseDictionaryData> seachTagInfo(BaseDictionaryData baseDictionaryData, Pagination page);

	/**
	 * 通过标签信息ID和状态查询对象是否存在
	 * @param params
	 * @author wangcongyi
	 * @return BaseDictionaryData
	 */
	public BaseDictionaryData isExists(JSONObject params);

	/**
	 * 更新状态（未激活，激活，禁用）
	 * @param params
	 * @author wangcongyi
	 * @return boolean
	 */
	public boolean modifyActive(JSONObject params);

	/**
	 * 添加商品标签信息
	 * @param tagInfo
	 * @author wangcongyi
	 * @param proSkus 
	 */
	public boolean insertSelective(BaseDictionaryData tagInfo, List<ProductExtInfo> proSkus);

	/**
	 * 更新商品标签信息
	 * @param tagInfo
	 * @author wangcongyi
	 * @param proSkus 
	 */
	public boolean updateByPrimaryKeySelective(BaseDictionaryData tagInfo, List<ProductExtInfo> proSkus);

	/**
	 * 通过ID查找商品标签信息
	 * @param tagInfo
	 * @author wangcongyi
	 */
	public BaseDictionaryData findTagInfoById(BaseDictionaryData tagInfo);
	
}
